#lang racket

(define (p) (p))

(define (test x y)
  (if (= x 0)
      0
      y))

(test 0 (p))

;При аппликативном порядке сначала будут вычислены операнды комбинации (test 0 (p)).
;Так как процедура p рекурсивна и не имеет условия прекращения, вычисление застрянет 
; еще на стадии вычисления второго операнда и никогда не будет закончено.

;При нормальном порядке выражение (test 0 (p)) будет заменено на (if (= 0 0) 0 (p)) 
;а затем на 0. Вычисление (p) никогда не произойдет.